DELETE 语句
发表于 2018-3-5 21:26:34 | 分类于 SQL |
DELETE 语句
DELETE 语句用于删除表中的行。
语法
DELETE FROM table_name
WHERE some_column=some_value;
注意:
DELETE 语句中的 WHERE 子句,规定哪条记录或者哪些记录需要删除。如果省略了 WHERE 子句,所有的记录都将被删除!
示例
样本数据库与 SELECT 语句 一章相同。
DELETE 示例
从 "Websites" 表中删除网站名为 "淘宝 " 且国家为 CN 的网站 :
DELETE FROM Websites
WHERE name='淘宝' AND country='CN';
输出结果:
mysql> DELETE FROM Websites
-> WHERE name='淘宝' AND country='CN';
+----+--------------+---------------------------+-------+---------+
| id | name | url | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1 | Google | https://www.google.cm/ | 1 | USA |
| 2 | 菜鸟教程 | http://www.runoob.com/ | 4689 | CN |
| 3 | 微博 | http://weibo.com/ | 20 | CN |
| 4 | Facebook | https://www.facebook.com/ | 3 | USA |
+----+--------------+---------------------------+-------+---------+
删除所有数据
可以在不删除表的情况下,删除表中所有的行。这意味着表结构、属性、索引将保持不变:
DELETE FROM table_name;
或
DELETE * FROM table_name;
注意:在删除记录时要格外小心!因为不能重来!
更多:SQL关于删除的三个语句(DROP、TRUNCATE、DELETE)的区别。
DROP
删除表test,并释放空间,将test删除的一干二净:
DROP test;
TRUNCATE
删除表test里的内容,并释放空间,但不删除表的定义,表的结构还在:
TRUNCATE test;
DELETE
(1)删除指定数据
删除表 test 中年龄等于 30 的且国家为 US 的数据:
DELETE FROM test WHERE age=30 AND country='US';
(2)删除整个表
仅删除表test内的所有内容,保留表的定义,不释放空间:
DELETE FROM test;
或者
DELETE * FROM test;